1. Field of the Invention
In general, the present invention provides a method, system and program product for providing a status of a transaction with an application on a server. Specifically, the present invention allows a server to be polled from a client to detect the status of a transaction independent of a persistent network connection.
2. Related Art
As computer technology becomes more advanced, computer users are increasingly being provided with the capability to conduct business and/or personal transactions from their home or office computers. For example, today a computer user can purchase goods/services, pay bills and manage a business over a computer network such as the Internet. In general, a network-based transaction occurs in a client-server environment with the computer system operated by the user being the client, and the computer system with which the client communicates being the server. To conduct a transaction, the client will typically establish a connection with the server and then transmit a request (e.g., a HTTP request) thereto. Upon receipt, the server will invoke one or more applications to process the request.
Unfortunately, as is well known, network connections between a client and a server often suffer various interruptions. Such interruptions can be due to, for example, a high volume of network traffic being received by the server, service provider errors, etc. In any event, the interruption of the connection often leads to loss of data, which can undermine the transaction being requested by the client. This is especially the case where the transaction takes an appreciable amount of time to process. For example, if a computer user is attempting to purchase goods on-line, the transaction could involve verifying credit card information. Verifying credit card information can require an application on the server to interact with one or more “external resources” (e.g., a bank). As such, verification of credit card information can often take several minutes.
While the transaction is being processed, status information is often desired by the computer user (especially for more time consuming transactions such as credit card verification). Specifically, the computer user often wishes to know whether the transaction is still pending, has been completed or has timed out. Previous systems for communicating transaction information to the computer users, however, all relied upon a persistent connection between the client and the server. Under such systems, as the connections were interrupted, the status information was lost or delayed. Since the persistence of a connection between a server and client is extremely difficult if not impossible to ensure, the previous systems failed to provide a reliable way of obtaining transaction status information.
In view of the foregoing, there exists a need for a method, system and program product for providing a status of a transaction with an application on a server. Specifically, a need exists for a system that allows a server to be polled from a client to detect the status of a transaction on a server. To this extent, a need exists for a system that allows a “stateful” relationship between a client and server to be maintained independent of a persistent network connection. A further need exists for a system that provides a flexible/defineable polling cycle and algorithm that is based on standard Internet technology components, and that is concealed from an end user.